//package com.commerceE.util;
//
//import org.springframework.transaction.annotation.Transactional;
//
//import com.commerceE.common.exception.DaoException;
//import com.commerceE.dao.CategoryDao;
//import com.commerceE.dao.ImageDao;
//import com.commerceE.dao.ProductDao;
//import com.commerceE.dao.ProductInstanceDao;
//import com.commerceE.domain.Category;
//import com.commerceE.domain.ImageEntity;
//import com.commerceE.domain.Product;
//import com.commerceE.domain.ProductAttribute;
//import com.commerceE.domain.ProductInstance;
//import com.commerceE.domain.ProductOption;
//import com.commerceE.domain.ProductOptionValue;
//
//public class DataSeedUtil {
//	public static void main(String[] args) {
//		new DataSeedUtil().executeDataInitialization();
//	}
//
//	@Transactional(readOnly=false, rollbackFor = Exception.class)
//	public void executeDataInitialization() {
//		CategoryDao categoryDao = (CategoryDao) SpringUtil
//				.getBeanById("categoryDao");
//		ProductDao productDao = (ProductDao) SpringUtil
//				.getBeanById("productDao");
//		ProductInstanceDao productInstanceDao = (ProductInstanceDao) SpringUtil
//				.getBeanById("productInstanceDao");
//		ImageDao imageDao = (ImageDao) SpringUtil
//				.getBeanById("imageDao");
//		try {
//			// Category data
//			Category category_root = new Category();
//			category_root.setCategory_name("root");
//			category_root.setDomain_id("megaStore");
//			category_root.setDisplay_order(1);
//			category_root.setParent_category_id("-1");
//
//			category_root = categoryDao.insertCategory(category_root);
//
//			// clothes category
//			Category category_clothes_and_shoes = new Category();
//			category_clothes_and_shoes.setCategory_name("Clothes and Shoes");
//			category_clothes_and_shoes.setDisplay_order(1);
//			category_clothes_and_shoes.setDomain_id("megaStore");
//			category_clothes_and_shoes.setParent_category_id(category_root
//					.getCategory_id());
//
//			// Watch category
//			Category category_watch = new Category();
//			category_watch.setCategory_name("Watch");
//			category_watch.setDisplay_order(2);
//			category_watch.setDomain_id("megaStore");
//			category_watch
//					.setParent_category_id(category_root.getCategory_id());
//
//			// Mobile category
//			Category category_mobile = new Category();
//			category_mobile.setCategory_name("Mobile");
//			category_mobile.setDisplay_order(3);
//			category_mobile.setDomain_id("megaStore");
//			category_mobile.setParent_category_id(category_root
//					.getCategory_id());
//
//			category_clothes_and_shoes = categoryDao.insertCategory(category_clothes_and_shoes);
//			category_watch = categoryDao.insertCategory(category_watch);
//			category_mobile = categoryDao.insertCategory(category_mobile);
//
//			// Products
//			Product product_nick_shoe_010 = new Product();
//			product_nick_shoe_010.setCategory_id(category_clothes_and_shoes
//					.getCategory_id());
//			product_nick_shoe_010.setProduct_name("Nick Shoe 010");
//			product_nick_shoe_010.setDisplay_order(1);
//			product_nick_shoe_010.setGlobal_price(89.99);
//			product_nick_shoe_010.setFlag_global_price(true);
//
//			Product product_addidas_tshirt = new Product();
//			product_addidas_tshirt.setCategory_id(category_clothes_and_shoes
//					.getCategory_id());
//			product_addidas_tshirt.setProduct_name("Addidas T-shirt");
//			product_addidas_tshirt.setDisplay_order(2);
//			product_nick_shoe_010.setGlobal_price(59.99);
//			product_nick_shoe_010.setFlag_global_price(true);
//
//			Product product_fossil_watch = new Product();
//			product_fossil_watch
//					.setCategory_id(category_watch.getCategory_id());
//			product_fossil_watch.setProduct_name("Fossil watch");
//			product_fossil_watch.setDisplay_order(1);
//
//			Product product_guess_watch = new Product();
//			product_guess_watch.setCategory_id(category_watch.getCategory_id());
//			product_guess_watch.setProduct_name("Guess watch");
//			product_guess_watch.setDisplay_order(2);
//
//			Product product_iphone4s = new Product();
//			product_iphone4s.setCategory_id(category_mobile.getCategory_id());
//			product_iphone4s.setProduct_name("Iphone 4s");
//			product_iphone4s.setDisplay_order(1);
//
//			Product product_samsung = new Product();
//			product_samsung.setCategory_id(category_mobile.getCategory_id());
//			product_samsung.setProduct_name("SAMSUNG");
//			product_samsung.setDisplay_order(2);
//
//			product_nick_shoe_010 = productDao.insertProduct(product_nick_shoe_010);
//			productDao.insertCategoryProductRef(category_clothes_and_shoes,
//					product_nick_shoe_010);
//
//			product_addidas_tshirt = productDao
//					.insertProduct(product_addidas_tshirt);
//			productDao.insertCategoryProductRef(category_clothes_and_shoes,
//					product_addidas_tshirt);
//
//			product_fossil_watch = productDao
//					.insertProduct(product_fossil_watch);
//			productDao.insertCategoryProductRef(category_watch,
//					product_fossil_watch);
//
//			product_guess_watch = productDao.insertProduct(product_guess_watch);
//			productDao.insertCategoryProductRef(category_watch,
//					product_guess_watch);
//
//			product_iphone4s = productDao.insertProduct(product_iphone4s);
//			productDao.insertCategoryProductRef(category_mobile,
//					product_iphone4s);
//
//			product_samsung = productDao.insertProduct(product_samsung);
//			productDao.insertCategoryProductRef(category_mobile,
//					product_samsung);
//			
//			//set up options
//			ProductOption productOption_Color = new ProductOption();
//			productOption_Color.setOption_name("Color");
//			productOption_Color.setOption_description("This a color option");
//			productOption_Color.setProduct_id(product_nick_shoe_010.getProduct_id());
//			productOption_Color.setPrice_tag(false);
//			
//			ProductOption productOption_Size = new ProductOption();
//			productOption_Size.setOption_name("Size");
//			productOption_Size.setOption_description("This a size option");
//			productOption_Size.setProduct_id(product_nick_shoe_010.getProduct_id());
//			productOption_Size.setPrice_tag(false);
//			
//			productInstanceDao.insertProductOption(productOption_Color);
//			productInstanceDao.insertProductOption(productOption_Size);
//			
//			//Option values
//			ProductOptionValue productOptionValue_red = new ProductOptionValue();
//			productOptionValue_red.setProduct_option_value("red");
//			productOptionValue_red.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_blue = new ProductOptionValue();
//			productOptionValue_blue.setProduct_option_value("blue");
//			productOptionValue_blue.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_black = new ProductOptionValue();
//			productOptionValue_black.setProduct_option_value("black");
//			productOptionValue_black.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_white = new ProductOptionValue();
//			productOptionValue_white.setProduct_option_value("white");
//			productOptionValue_white.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_yellow = new ProductOptionValue();
//			productOptionValue_yellow.setProduct_option_value("yellow");
//			productOptionValue_yellow.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_green = new ProductOptionValue();
//			productOptionValue_green.setProduct_option_value("green");
//			productOptionValue_green.setProduct_option(productOption_Color);
//			
//			ProductOptionValue productOptionValue_size_38 = new ProductOptionValue();
//			productOptionValue_size_38.setProduct_option_value("38");
//			productOptionValue_size_38.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_39 = new ProductOptionValue();
//			productOptionValue_size_39.setProduct_option_value("39");
//			productOptionValue_size_39.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_40 = new ProductOptionValue();
//			productOptionValue_size_40.setProduct_option_value("40");
//			productOptionValue_size_40.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_41 = new ProductOptionValue();
//			productOptionValue_size_41.setProduct_option_value("41");
//			productOptionValue_size_41.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_42 = new ProductOptionValue();
//			productOptionValue_size_42.setProduct_option_value("42");
//			productOptionValue_size_42.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_43 = new ProductOptionValue();
//			productOptionValue_size_43.setProduct_option_value("43");
//			productOptionValue_size_43.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_44 = new ProductOptionValue();
//			productOptionValue_size_44.setProduct_option_value("44");
//			productOptionValue_size_44.setProduct_option(productOption_Size);
//			
//			ProductOptionValue productOptionValue_size_45 = new ProductOptionValue();
//			productOptionValue_size_45.setProduct_option_value("45");
//			productOptionValue_size_45.setProduct_option(productOption_Size);
//			
//			productInstanceDao.insertProductOptionValue(productOptionValue_red);
//			productInstanceDao.insertProductOptionValue(productOptionValue_yellow);
//			productInstanceDao.insertProductOptionValue(productOptionValue_blue);
//			productInstanceDao.insertProductOptionValue(productOptionValue_black);
//			productInstanceDao.insertProductOptionValue(productOptionValue_green);
//			productInstanceDao.insertProductOptionValue(productOptionValue_white);
//			
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_38);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_39);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_40);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_41);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_42);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_43);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_44);
//			productInstanceDao.insertProductOptionValue(productOptionValue_size_45);
//
//			//Product attributes
//			ProductAttribute productAttribute_manufacturer = new ProductAttribute();
//			productAttribute_manufacturer.setAttribute_name("manufacturer");
//			productAttribute_manufacturer.setAttribute_value("Nike");
//			productAttribute_manufacturer.setDisplay_order(1);
//			productAttribute_manufacturer.setDisplay_flag(true);
//			productAttribute_manufacturer.setProduct_id(product_nick_shoe_010.getProduct_id());
//			
//			ProductAttribute productAttribute_localtion = new ProductAttribute();
//			productAttribute_localtion.setAttribute_name("factory location");
//			productAttribute_localtion.setAttribute_value("China");
//			productAttribute_localtion.setDisplay_order(2);
//			productAttribute_localtion.setDisplay_flag(true);
//			productAttribute_localtion.setProduct_id(product_nick_shoe_010.getProduct_id());
//			
//			ProductAttribute productAttribute_style = new ProductAttribute();
//			productAttribute_style.setAttribute_name("style");
//			productAttribute_style.setAttribute_value("sport");
//			productAttribute_style.setDisplay_order(3);
//			productAttribute_style.setDisplay_flag(true);
//			productAttribute_style.setProduct_id(product_nick_shoe_010.getProduct_id());
//			
//			productInstanceDao.insertProductAttribute(productAttribute_manufacturer);
//			productInstanceDao.insertProductAttribute(productAttribute_localtion);
//			productInstanceDao.insertProductAttribute(productAttribute_style);
//			
//			//Images
//			ImageEntity imageEntity1 = new ImageEntity();
//			imageEntity1.setDefault_flag(true);
//			imageEntity1.setPath("/upload/images/product/001.jpg");
//			imageEntity1.setType("product");
//			imageEntity1.setDisplay_order(1);
//			imageEntity1.setInstance_id(product_nick_shoe_010.getProduct_id());
//			
//			ImageEntity imageEntity2 = new ImageEntity();
//			imageEntity2.setDefault_flag(false);
//			imageEntity2.setPath("/upload/images/product/002.jpg");
//			imageEntity2.setType("product");
//			imageEntity2.setDisplay_order(2);
//			imageEntity2.setInstance_id(product_nick_shoe_010.getProduct_id());
//			
//			ImageEntity imageEntity3 = new ImageEntity();
//			imageEntity3.setDefault_flag(false);
//			imageEntity3.setPath("/upload/images/product/003.jpg");
//			imageEntity3.setType("product");
//			imageEntity3.setDisplay_order(3);
//			imageEntity3.setInstance_id(product_nick_shoe_010.getProduct_id());
//			
//			imageDao.insertImageEntity(imageEntity1);
//			imageDao.insertImageEntity(imageEntity2);
//			imageDao.insertImageEntity(imageEntity3);
//			
//			ProductInstance productInstance1 = new ProductInstance();
//			productInstance1.setProduct(product_nick_shoe_010);
//			productInstance1.getProductOptionValueList().add(productOptionValue_size_38);
//			productInstance1.getProductOptionValueList().add(productOptionValue_red);
//			productInstance1.setQuantity(12);
//			
//			ProductInstance productInstance2 = new ProductInstance();
//			productInstance2.setProduct(product_nick_shoe_010);
//			productInstance2.getProductOptionValueList().add(productOptionValue_size_39);
//			productInstance2.getProductOptionValueList().add(productOptionValue_blue);
//			productInstance2.setQuantity(55);
//			
//			ProductInstance productInstance3 = new ProductInstance();
//			productInstance3.setProduct(product_nick_shoe_010);
//			productInstance3.getProductOptionValueList().add(productOptionValue_size_39);
//			productInstance3.getProductOptionValueList().add(productOptionValue_black);
//			productInstance3.setQuantity(64);
//			
//			ProductInstance productInstance4 = new ProductInstance();
//			productInstance4.setProduct(product_nick_shoe_010);
//			productInstance4.getProductOptionValueList().add(productOptionValue_size_40);
//			productInstance4.getProductOptionValueList().add(productOptionValue_white);
//			productInstance4.setQuantity(10);
//			
//			ProductInstance productInstance5 = new ProductInstance();
//			productInstance5.setProduct(product_nick_shoe_010);
//			productInstance5.getProductOptionValueList().add(productOptionValue_size_40);
//			productInstance5.getProductOptionValueList().add(productOptionValue_blue);
//			productInstance5.setQuantity(89);
//			
//			ProductInstance productInstance6 = new ProductInstance();
//			productInstance6.setProduct(product_nick_shoe_010);
//			productInstance6.getProductOptionValueList().add(productOptionValue_size_41);
//			productInstance6.getProductOptionValueList().add(productOptionValue_red);
//			productInstance6.setQuantity(45);
//			
//			ProductInstance productInstance7 = new ProductInstance();
//			productInstance7.setProduct(product_nick_shoe_010);
//			productInstance7.getProductOptionValueList().add(productOptionValue_size_41);
//			productInstance7.getProductOptionValueList().add(productOptionValue_blue);
//			productInstance7.setQuantity(20);
//			
//			ProductInstance productInstance8 = new ProductInstance();
//			productInstance8.setProduct(product_nick_shoe_010);
//			productInstance8.getProductOptionValueList().add(productOptionValue_size_41);
//			productInstance8.getProductOptionValueList().add(productOptionValue_black);
//			productInstance8.setQuantity(56);
//			
//			ProductInstance productInstance9 = new ProductInstance();
//			productInstance9.setProduct(product_nick_shoe_010);
//			productInstance9.getProductOptionValueList().add(productOptionValue_size_42);
//			productInstance9.getProductOptionValueList().add(productOptionValue_blue);
//			productInstance9.setQuantity(21);
//			
//			productInstanceDao.insertProductInstance(productInstance1);
//			productInstanceDao.insertProductInstance(productInstance2);
//			productInstanceDao.insertProductInstance(productInstance3);
//			productInstanceDao.insertProductInstance(productInstance4);
//			productInstanceDao.insertProductInstance(productInstance5);
//			productInstanceDao.insertProductInstance(productInstance6);
//			productInstanceDao.insertProductInstance(productInstance7);
//			productInstanceDao.insertProductInstance(productInstance8);
//			productInstanceDao.insertProductInstance(productInstance9);
//			
//
//		} catch (DaoException e) {
//			e.printStackTrace();
//		}
//	}
//
//}
